Créer un fichier htaccess et un fichier htpasswd pour protéger un dossier>

Créer un fichier htaccess et un fichier htpasswd pour protéger un dossier



Lorsque vous créez un site web en php, vous pouvez être amené à protéger un dossier. On protége surtout les zones membres qui permettent aux administrateur d'administrer le site car si une personne peut aller sur ce dossier, elle peut faire toutes les bétises qu'elle souhaite et donc par exemple supprimer les fichiers. wink

Les fichiers .htaccess et .htpasswd vont nous permettre de faire des restrictions à ce dossier en demandant un nom d'utilisateur et un mot de passe. Nous allons donc créer 2 fichiers :

  • Le fichier .htaccess comprenant le fichier .htpasswd et d'autres option.
  • Le fichier .htpasswd comprenant une liste de login et de mot de passe pour tous les administrateurs du site.


Création du fichier .htaccess :

Si vous regardez bien, depuis le début, je met un point devant les noms de fichiers .htaccess et .htpasswd. Et c'est très important car ce sont des fichiers de configuration. Mais Windows ne prend pas les points à l'enregistrement alors comment faut-il faire pour mettre ces points. Ne vous inquietez pas pour le moment, quand on transférera ces 2 fichiers, je vous montrerai la solution. C'est très simple smiley

Donc commençons à créer notre fichier .htaccess. Pour cela, ouvrez votre éditeur WYSIWYG ou tout simplement le bloc note et copier le code suivant :



Parmis ces 4 lignes, vous devez changer la première et la troisième :

AuthName : c'est le texte qui invitera l'utilisateur à inscrire son login / mot de passe. Vous pouvez personnaliser ce texte comme bon vous semble.

AuthUserFile : C'est le chemin ABSOLU vers le fichier .htpasswd

Comment faut-il faire pour trouver le chemin absolu ?

Ne vous inquiétez pas c'est très simple. Copier / coller le code suivant :



  • Enregistrez ce code sous le nom "absolu.php".
  • Envoyez ce fichier sur votre serveur avec votre logiciel FTP. Placez-le dans le dossier que vous voulez protéger.
  • Ouvrez votre navigateur et allez voir ce fichier.
  • Dans mon cas il me donne /home.10.27/helpclic/www/admin/.htpasswd.
  • Ce fichier absolu, je l'ai placé dans un dossier nommé admin. Après avoir relevé le chemin absolu, vous pouvez supprimer ce fichier, il ne vous sert plus à rien. 


Maintenant, enregistrez ce fichier sous le nom htaccess.txt. Remarquez bien que je n'ai pas mis de point devant, on verra quand on transférera ce fichier.

Création du fichier .htpasswd :

Dans ce fichier, nous allons placer les logins des utilisateurs qui ont accès à ce dossier ainsi que les mots de passe crypté. Les mots de passe sont cryptés car tout le monde connaît ces fichiers htaccess et htpasswd et donc si nous ne cryptions pas les mots de passe ce serait très simple de les trouver.

Mais comment je fais pour crypter un mot de passe.

Ne vous inquiétez pas, j'ai tout prévu pour vous. Utiliser le script "Crypter les mots de passe".

Dans la zone login, saisissez le login et dans la zone mot de passe, choisissez le mot de passe puis cliquer sur le bouton "Coder".

Vous devriez avoir un code comme cela :toto:$1$LI0lpC46$otUk1AMsJ446SYsJSVhMA1

toto est le nom d'utilisateur et $1$LI... est le mot de passe crypté.

Copier / coller ce code dans un nouveau document du bloc note et enregistrez ce fichier sous le nom htpasswd.txt.

Si vous avez d'autres utilisateurs à mettre, il suffit de les mettre les uns au dessous des autres.

Envoyer les fichiers htaccess et htpasswd sur le serveur :

Ouvrez votre logiciel FTP préféré puis transférer ces 2 fichiers dans votre dossier. Pour mon exemple, je vais transférer ces 2 fichiers dans le dossier Admin :

Maintenant que vous avez transférer vos fichiers, renommez les en .htaccess et .htpasswd. Pour cela, cliquez droit sur le fichier puis choisissez renommez. N'oubliez pas d'enlever l'extension .txt

Voilà, votre dossier admin est désormais protégé. Si quelqu'un essai d'accéder à ce dossier, il obtiendra la boîte de dialogue suivante :

authentification

Il ne vous reste plus qu'à saisir le nom d'utilisateur et le mot de passe.